<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the use of the GNU compilers.

Copyright (C) 1988-2023 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "Funding Free Software", the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below).  A copy of the license is included in the section entitled
"GNU Free Documentation License".

(a) The FSF's Front-Cover Text is:

A GNU Manual

(b) The FSF's Back-Cover Text is:

You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development. -->
<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>eBPF Options (Using the GNU Compiler Collection (GCC))</title>

<meta name="description" content="eBPF Options (Using the GNU Compiler Collection (GCC))">
<meta name="keywords" content="eBPF Options (Using the GNU Compiler Collection (GCC))">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html#Top" rel="start" title="Top">
<link href="Indices.html#Indices" rel="index" title="Indices">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Submodel-Options.html#Submodel-Options" rel="up" title="Submodel Options">
<link href="FR30-Options.html#FR30-Options" rel="next" title="FR30 Options">
<link href="DEC-Alpha-Options.html#DEC-Alpha-Options" rel="prev" title="DEC Alpha Options">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en_US">
<a name="eBPF-Options"></a>
<div class="header">
<p>
Next: <a href="FR30-Options.html#FR30-Options" accesskey="n" rel="next">FR30 Options</a>, Previous: <a href="DEC-Alpha-Options.html#DEC-Alpha-Options" accesskey="p" rel="prev">DEC Alpha Options</a>, Up: <a href="Submodel-Options.html#Submodel-Options" accesskey="u" rel="up">Submodel Options</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Indices.html#Indices" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="eBPF-Options-1"></a>
<h4 class="subsection">3.19.13 eBPF Options</h4>
<a name="index-eBPF-Options"></a>

<dl compact="compact">
<dt><code>-mframe-limit=<var>bytes</var></code></dt>
<dd><p>This specifies the hard limit for frame sizes, in bytes.  Currently,
the value that can be specified should be less than or equal to
&lsquo;<samp>32767</samp>&rsquo;.  Defaults to whatever limit is imposed by the version of
the Linux kernel targeted.
</p>
<a name="index-mkernel-1"></a>
</dd>
<dt><code>-mkernel=<var>version</var></code></dt>
<dd><p>This specifies the minimum version of the kernel that will run the
compiled program.  GCC uses this version to determine which
instructions to use, what kernel helpers to allow, etc.  Currently,
<var>version</var> can be one of &lsquo;<samp>4.0</samp>&rsquo;, &lsquo;<samp>4.1</samp>&rsquo;, &lsquo;<samp>4.2</samp>&rsquo;,
&lsquo;<samp>4.3</samp>&rsquo;, &lsquo;<samp>4.4</samp>&rsquo;, &lsquo;<samp>4.5</samp>&rsquo;, &lsquo;<samp>4.6</samp>&rsquo;, &lsquo;<samp>4.7</samp>&rsquo;,
&lsquo;<samp>4.8</samp>&rsquo;, &lsquo;<samp>4.9</samp>&rsquo;, &lsquo;<samp>4.10</samp>&rsquo;, &lsquo;<samp>4.11</samp>&rsquo;, &lsquo;<samp>4.12</samp>&rsquo;,
&lsquo;<samp>4.13</samp>&rsquo;, &lsquo;<samp>4.14</samp>&rsquo;, &lsquo;<samp>4.15</samp>&rsquo;, &lsquo;<samp>4.16</samp>&rsquo;, &lsquo;<samp>4.17</samp>&rsquo;,
&lsquo;<samp>4.18</samp>&rsquo;, &lsquo;<samp>4.19</samp>&rsquo;, &lsquo;<samp>4.20</samp>&rsquo;, &lsquo;<samp>5.0</samp>&rsquo;, &lsquo;<samp>5.1</samp>&rsquo;,
&lsquo;<samp>5.2</samp>&rsquo;, &lsquo;<samp>latest</samp>&rsquo; and &lsquo;<samp>native</samp>&rsquo;.
</p>
<a name="index-mbig_002dendian-5"></a>
</dd>
<dt><code>-mbig-endian</code></dt>
<dd><p>Generate code for a big-endian target.
</p>
<a name="index-mlittle_002dendian-5"></a>
</dd>
<dt><code>-mlittle-endian</code></dt>
<dd><p>Generate code for a little-endian target.  This is the default.
</p>
<a name="index-mjmpext"></a>
</dd>
<dt><code>-mjmpext</code></dt>
<dd><p>Enable generation of extra conditional-branch instructions.
Enabled for CPU v2 and above.
</p>
<a name="index-mjmp32"></a>
</dd>
<dt><code>-mjmp32</code></dt>
<dd><p>Enable 32-bit jump instructions. Enabled for CPU v3 and above.
</p>
<a name="index-malu32"></a>
</dd>
<dt><code>-malu32</code></dt>
<dd><p>Enable 32-bit ALU instructions. Enabled for CPU v3 and above.
</p>
<a name="index-mcpu-5"></a>
</dd>
<dt><code>-mcpu=<var>version</var></code></dt>
<dd><p>This specifies which version of the eBPF ISA to target. Newer versions
may not be supported by all kernels. The default is &lsquo;<samp>v3</samp>&rsquo;.
</p>
<p>Supported values for <var>version</var> are:
</p>
<dl compact="compact">
<dt>&lsquo;<samp>v1</samp>&rsquo;</dt>
<dd><p>The first stable eBPF ISA with no special features or extensions.
</p>
</dd>
<dt>&lsquo;<samp>v2</samp>&rsquo;</dt>
<dd><p>Supports the jump extensions, as in <samp>-mjmpext</samp>.
</p>
</dd>
<dt>&lsquo;<samp>v3</samp>&rsquo;</dt>
<dd><p>All features of v2, plus:
</p><ul class="no-bullet">
<li>- 32-bit jump operations, as in <samp>-mjmp32</samp>
</li><li>- 32-bit ALU operations, as in <samp>-malu32</samp>
</li></ul>

</dd>
</dl>

<a name="index-mco_002dre"></a>
</dd>
<dt><code>-mco-re</code></dt>
<dd><p>Enable BPF Compile Once - Run Everywhere (CO-RE) support. Requires and
is implied by <samp>-gbtf</samp>.
</p>
<a name="index-mno_002dco_002dre"></a>
</dd>
<dt><code>-mno-co-re</code></dt>
<dd><p>Disable BPF Compile Once - Run Everywhere (CO-RE) support. BPF CO-RE
support is enabled by default when generating BTF debug information for
the BPF target.
</p>
</dd>
<dt><code>-mxbpf</code></dt>
<dd><p>Generate code for an expanded version of BPF, which relaxes some of
the restrictions imposed by the BPF architecture:
</p><ul class="no-bullet">
<li>- Save and restore callee-saved registers at function entry and
exit, respectively.
</li></ul>
</dd>
</dl>

<hr>
<div class="header">
<p>
Next: <a href="FR30-Options.html#FR30-Options" accesskey="n" rel="next">FR30 Options</a>, Previous: <a href="DEC-Alpha-Options.html#DEC-Alpha-Options" accesskey="p" rel="prev">DEC Alpha Options</a>, Up: <a href="Submodel-Options.html#Submodel-Options" accesskey="u" rel="up">Submodel Options</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Indices.html#Indices" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>
